namespace LanSunERP
{
    using System;
    using System.ServiceModel;
    using System.Windows.Forms;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Runtime.Serialization;
    using System.Collections;
    using System.Data;
    using System.Data.SqlClient;

    public class UserManagement : QueryCommand
    {
        public UserManagement() : base() { }
        public UserManagement(SqlCommand cmdSQL, DataTable dtRequest, string RequestJob)
            : base(cmdSQL, dtRequest, RequestJob) { }
        public SqlCommand BuildCommand()
        {

            switch (RequestJob.Substring(6, 10))
            {
                case "0000000000":
                    /*
                         case "UserManagement":
                            UserManagement m_UserManagement = new UserManagement(cmdSQL, dtRequest, RequestJob);
                            cmdSQL = m_UserManagement.BuildCommand();
                            break;
                    */
                    break;
                case "1000000000":
                    break;
                case "2000000001":
                case "4000000000":
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    break;
                case "1000006706":  //IX_GoodsTypeKeyDef
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    break;
                case "1000006702":  //IX_UserManagement
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsKey", dwRequest["GoodsKey"].ToString()));
                    break;
                case "1000006705":  //IX_UserManagement_GoodsTypeKeyDefKey
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    break;
                case "1000006704":  //IX_UserManagement_Key
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsKey", dwRequest["GoodsKey"].ToString()));
                    break;
                case "1000006707":  //IX_UserManagement_MasterKey
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsKey", dwRequest["GoodsKey"].ToString()));
                    break;
                case "1000006703":  //IX_UserManagement_Parent
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsKey", dwRequest["GoodsKey"].ToString()));
                    break;
                case "1000006709":  //IX_UserManagement_SysID
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    break;
                case "1000006710":  //IX_UserManagement_UGoodsKey
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@UGoodsKey", dwRequest["UGoodsKey"].ToString()));
                    break;
                case "1000006711":  //TX_UserManagement
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsKey", dwRequest["GoodsKey"].ToString()));
                    break;
                case "2000000000":
                case "3000000001":
                case "3000000000":
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    cmdSQL = BuildInstanceKey(cmdSQL, dwRequest);
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsKey", dwRequest["GoodsKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@UGoodsKey", dwRequest["UGoodsKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@UserGroup", dwRequest["UserGroup"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@UserID", dwRequest["UserID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@UserName", dwRequest["UserName"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@Password", dwRequest["Password"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@AgentID", dwRequest["AgentID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@IsDesignTime", dwRequest["IsDesignTime"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@IsTrace", dwRequest["IsTrace"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LongDes", dwRequest["LongDes"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@ShortDes", dwRequest["ShortDes"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@SubStatus", dwRequest["SubStatus"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@Status", dwRequest["Status"].ToString()));
                    break;
            }
            return cmdSQL;

        }
        public override SqlCommand BuildInstanceKey(SqlCommand cmdSQL, DataRow dwTemp)
        {
            string InstanceKey = dwTemp["InstanceKey"].ToString().Trim();
            string SysID = dwTemp["SysID"].ToString().Trim();
            string KeyDefType = dwTemp["KeyDefType"].ToString().Trim();
            string GoodsTypeKey = dwTemp["GoodsTypeKey"].ToString().Trim();
            string GoodsTypeKeyDefKey = dwTemp["GoodsTypeKeyDefKey"].ToString().Trim();
            string GoodsKey = dwTemp["GoodsKey"].ToString().Trim();

            {
                if (SysID != "" && KeyDefType != "" && GoodsTypeKey != "" && GoodsTypeKeyDefKey != "" && GoodsKey != "")
                {
                    InstanceKey = SysID + "." + KeyDefType + "." + GoodsTypeKey + "." + GoodsTypeKeyDefKey + "." + GoodsKey;
                    dwTemp["InstanceKey"] = InstanceKey;
                    dwTemp.AcceptChanges();
                }
            }
            cmdSQL.Parameters.Add(new SqlParameter("@InstanceKey", dwRequest["InstanceKey"].ToString()));
            return base.BuildInstanceKey(cmdSQL, dwTemp);
        }
    }
    public class UserManagementQueryCond : QueryCommand
    {
        public UserManagementQueryCond() : base() { }
        public UserManagementQueryCond(SqlCommand cmdSQL, DataTable dtRequest, string RequestJob)
            : base(cmdSQL, dtRequest, RequestJob) { }

        public SqlCommand BuildCommand()
        {
            switch (RequestJob.Substring(6, 10))
            {
                case "0000000000": break;
                case "1000000000": break;
                case "1000000001": break;
                case "1000000002": break;
                case "2000000000":
                case "3000000000":
                    cmdSQL.Parameters.Add(new SqlParameter("@SysID", dwRequest["SysID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceKey", dwRequest["InstanceKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@KeyDefType", dwRequest["KeyDefType"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKey", dwRequest["GoodsTypeKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsTypeKeyDefKey", dwRequest["GoodsTypeKeyDefKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@GoodsKey", dwRequest["GoodsKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@UGoodsKey", dwRequest["UGoodsKey"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@UserGroup", dwRequest["UserGroup"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@UserID", dwRequest["UserID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@UserName", dwRequest["UserName"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@Password", dwRequest["Password"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@AgentID", dwRequest["AgentID"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@IsDesignTime", dwRequest["IsDesignTime"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@IsTrace", dwRequest["IsTrace"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LongDes", dwRequest["LongDes"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@ShortDes", dwRequest["ShortDes"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@SubStatus", dwRequest["SubStatus"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@Status", dwRequest["Status"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@FrstUser", dwRequest["FrstUser"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@FrstDate", dwRequest["FrstDate"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LastUser", dwRequest["LastUser"].ToString()));
                    cmdSQL.Parameters.Add(new SqlParameter("@LastDate", dwRequest["LastDate"].ToString()));

                    break;
                case "4000000000":
                    cmdSQL.Parameters.Add(new SqlParameter("@InstanceID", dwRequest["InstanceID"].ToString()));
                    break;
            }
            return cmdSQL;

        }

    }
}

